home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / pwdb / pwdb_radius.h < prev    next >
C/C++ Source or Header  |  2005-10-13  |  3KB  |  93 lines

  1.  
  2. #ifndef PWDB_RADIUS_PUBLIC_H
  3. #define PWDB_RADIUS_PUBLIC_H
  4.  
  5. #include <pwdb/radius.h>
  6.  
  7. /* RADIUS stuff */
  8.  
  9. /* useful defines */
  10.  
  11. #ifdef  BUFFER_SIZE
  12. #undef  BUFFER_SIZE
  13. #endif /* BUFFER_SIZE */
  14. #define  BUFFER_SIZE   4096
  15.  
  16. #define _PWDB_STR_DATE_LENGTH    128
  17. #define LONG_VAL_PTR(ptr) ((*(ptr)<<24)+(*((ptr)+1)<<16)+(*((ptr)+2)<<8)+(*((ptr)+3)))
  18.  
  19. typedef struct {
  20.     char         *hostname;     /* the server name */
  21.     char         *secret;    /* password for server */
  22. } RADIUS_SERVER;
  23.  
  24. typedef struct {
  25.     unsigned int  length;
  26.     void          *result;
  27. } RADIUS_RESULT;
  28.  
  29. /* This is the core functions we export */
  30. int rad_authenticate (RADIUS_SERVER,  /* RADIUS server entry */
  31.               const char*,      /* user name */
  32.               const char*,      /* password */
  33.               RADIUS_RESULT*    /* response */
  34.               );      
  35.  
  36. int rad_change_passwd (RADIUS_SERVER, /* RADIUS server entry */
  37.                const char*,     /* user name */ 
  38.                const char*,     /* old password */
  39.                const char *,    /* new password */
  40.                RADIUS_RESULT*   /* response */
  41.                );      
  42.  
  43. int radius_acct_send (RADIUS_SERVER server, /* RADIUS server entry */
  44.                       const char* username, /* username */
  45.               int sense,            /* sense = PW_STATUS_START | PW_STATUS_STOP */
  46.               int session_time      /* session time - when stop */
  47.               );
  48.  
  49. #define radius_acct_start(server, user) \
  50.         radius_acct_send((server), (user), PW_STATUS_START, 0)
  51. #define radius_acct_stop(server, user, session_time) \
  52.         radius_acct_send((server), (user), PW_STATUS_STOP, (session_time))
  53.  
  54. /* Return codes for the above function */
  55. #define PWDB_RADIUS_SUCCESS    0    /* success */
  56. #define PWDB_RADIUS_CONF_ERR    1    /* configuration file error */
  57. #define PWDB_RADIUS_AUTH_FAIL    2    /* authetication failure */
  58. #define PWDB_RADIUS_NET_FAIL    3    /* comm. with the RADIUS server failed */
  59. #define PWDB_RADIUS_BAD_REQ        4    /* bad request */
  60. #define PWDB_RADIUS_RESOLV_ERR    5    /* resolver error on server hostname */
  61. #define PWDB_RADIUS_LOCAL_ERR    6    /* local error - services file, etc. */
  62. #define PWDB_RADIUS_SOCKET_ERR    7    /* socket creation/communication error */
  63. #define PWDB_RADIUS_TIMEOUT     8       /* timeout communicating with the server */
  64.  
  65. /* Helper RADIUS functions */
  66. const char *radstr_ust(u_int type);
  67. const char *radstr_fp(u_int type);
  68. const char *radstr_fr(u_int type);
  69. const char *radstr_ls(u_int type); 
  70. const char *radstr_ast(u_int type);
  71. const char *radstr_aa(u_int type);
  72. int get_server_entries (char *hostname, char *secret);
  73.  
  74. /* RADIUS code */
  75. char *  ip_hostname( UINT4 );
  76. UINT4   get_ipaddr( char * );
  77. int     good_ipaddr( char * );
  78. void    ipaddr2str( char *, UINT4 );
  79. void    pairfree( VALUE_PAIR * );
  80. UINT4   ipstr2long( char * );
  81.  
  82. /* Dictionary processing functions */
  83. int dict_init(void);
  84. DICT_ATTR *dict_attrget(int attribute);
  85. DICT_ATTR  *dict_attrfind(char *attrname);
  86. DICT_VALUE *dict_valfind(char *valname);
  87. DICT_VALUE *dict_valget(UINT4 value, char *attrname);
  88.  
  89.  
  90. /******************************************************************/
  91.  
  92. #endif /* PWDB_RADIUS_PUBLIC_H */
  93.